Add gtk_print_unix_dialog_add_custom_tab
authorAlexander Larsson <alexl@redhat.com>
Tue, 23 May 2006 08:09:08 +0000 (08:09 +0000)
committerAlexander Larsson <alexl@src.gnome.org>
Tue, 23 May 2006 08:09:08 +0000 (08:09 +0000)
2006-05-23  Alexander Larsson  <alexl@redhat.com>

* gtk/gtk.symbols:
* gtk/gtkprintunixdialog.[ch]:
Add gtk_print_unix_dialog_add_custom_tab

* gtk/gtkprintoperation-unix.c:
Implement custom widgets for unix.
Fix some warnings by including cairo-ps/pdf.h

* gtk/gtkprintoperation-win32.c:
Mark string for translation.

ChangeLog
ChangeLog.pre-2-10
gtk/gtk.symbols
gtk/gtkprintoperation-unix.c
gtk/gtkprintoperation-win32.c
gtk/gtkprintunixdialog.c
gtk/gtkprintunixdialog.h

index 4a53e012f2d0eed0ff2ea8efadc59e2fd7d2de0c..70248c40a6b64b62ab1f0260d4e2b2942a5d144a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2006-05-23  Alexander Larsson  <alexl@redhat.com>
+
+       * gtk/gtk.symbols:
+       * gtk/gtkprintunixdialog.[ch]:
+       Add gtk_print_unix_dialog_add_custom_tab
+       
+       * gtk/gtkprintoperation-unix.c:
+       Implement custom widgets for unix.
+       Fix some warnings by including cairo-ps/pdf.h
+       
+       * gtk/gtkprintoperation-win32.c:
+       Mark string for translation.
+
 2006-05-22  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkprintoperation.c (gtk_print_operation_class_init): 
index 4a53e012f2d0eed0ff2ea8efadc59e2fd7d2de0c..70248c40a6b64b62ab1f0260d4e2b2942a5d144a 100644 (file)
@@ -1,3 +1,16 @@
+2006-05-23  Alexander Larsson  <alexl@redhat.com>
+
+       * gtk/gtk.symbols:
+       * gtk/gtkprintunixdialog.[ch]:
+       Add gtk_print_unix_dialog_add_custom_tab
+       
+       * gtk/gtkprintoperation-unix.c:
+       Implement custom widgets for unix.
+       Fix some warnings by including cairo-ps/pdf.h
+       
+       * gtk/gtkprintoperation-win32.c:
+       Mark string for translation.
+
 2006-05-22  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkprintoperation.c (gtk_print_operation_class_init): 
index b2da5fb50c231c078d5ea04c35afa8ac538c8dcd..81e6df6b26f4c060aedfc06a9730cecc9f4fda1e 100644 (file)
@@ -2804,6 +2804,7 @@ gtk_print_unix_dialog_get_current_page
 gtk_print_unix_dialog_set_settings
 gtk_print_unix_dialog_get_settings
 gtk_print_unix_dialog_get_selected_printer
+gtk_print_unix_dialog_add_custom_tab
 #endif
 #endif
 #endif
index 7812e54e29c785b361dc5281870ff8dfead1b960..8176fd404b2dfcda5b51da7f34b46e350b4533d6 100644 (file)
 #include "gtkmarshal.h"
 #include "gtkmessagedialog.h"
 
+#include <cairo-pdf.h>
+#include <cairo-ps.h>
 #include "gtkprintunixdialog.h"
 #include "gtkpagesetupunixdialog.h"
 #include "gtkprintbackend.h"
 #include "gtkprinter.h"
 #include "gtkprintjob.h"
+#include "gtklabel.h"
 #include "gtkalias.h"
 #include "gtkintl.h"
 
+
 typedef struct {
   GtkPrintJob *job;         /* the job we are sending to the printer */
   gulong job_status_changed_tag;
@@ -169,8 +173,9 @@ get_print_dialog (GtkPrintOperation *op,
                   GtkWindow         *parent)
 {
   GtkPrintOperationPrivate *priv = op->priv;
-  GtkWidget *pd;
+  GtkWidget *pd, *label;
   GtkPageSetup *page_setup;
+  const char *app_name;
 
   pd = gtk_print_unix_dialog_new (NULL, parent);
 
@@ -186,6 +191,20 @@ get_print_dialog (GtkPrintOperation *op,
                                         page_setup);
   g_object_unref (page_setup);
 
+  g_signal_emit_by_name (op, "create-custom-widget",
+                        &op->priv->custom_widget);
+
+  if (op->priv->custom_widget) {
+    app_name = g_get_application_name ();
+    if (app_name == NULL)
+      app_name = _("Application");
+    
+    label = gtk_label_new (app_name);
+    
+    gtk_print_unix_dialog_add_custom_tab (GTK_PRINT_UNIX_DIALOG (pd),
+                                         op->priv->custom_widget, label);
+  }
+  
   return pd;
 }
   
@@ -306,6 +325,8 @@ handle_print_response (GtkWidget *dialog,
 
       settings = gtk_print_unix_dialog_get_settings (GTK_PRINT_UNIX_DIALOG (pd));
       page_setup = gtk_print_unix_dialog_get_page_setup (GTK_PRINT_UNIX_DIALOG (pd));
+
+      g_signal_emit_by_name (rdata->op, "custom-widget-apply", rdata->op->priv->custom_widget);
     } 
 
  out:  
index bf342c6f80ec662f827b7da58cb13d952f07dc5e..2ee127da5e753dbd008fdf5a7e3cdd7a71c8d826 100644 (file)
@@ -1377,7 +1377,7 @@ create_application_page (GtkPrintOperation *op)
   page.pResource = template;
   app_name = g_get_application_name ();
   if (app_name == NULL)
-    app_name = "Application";
+    app_name = _("Application");
   page.pszTitle = g_utf8_to_utf16 (app_name, 
                                   -1, NULL, NULL, NULL);
   page.pfnDlgProc = pageDlgProc;
index 32694cdac50c7e1b09294edc3e7859eed0216311..5988e71dc47edd74aacbb55984e1d4b50f256a90 100644 (file)
@@ -2637,6 +2637,17 @@ gtk_print_unix_dialog_get_settings (GtkPrintUnixDialog *dialog)
   return settings;
 }
 
+void
+gtk_print_unix_dialog_add_custom_tab (GtkPrintUnixDialog *dialog,
+                                     GtkWidget *child,
+                                     GtkWidget *tab_label)
+{
+  gtk_notebook_insert_page (GTK_NOTEBOOK (dialog->priv->notebook),
+                           child, tab_label, 2);
+  gtk_widget_show (child);
+  gtk_widget_show (tab_label);
+}
+
 
 #define __GTK_PRINT_UNIX_DIALOG_C__
 #include "gtkaliasdef.c"
index da322cdf72166b6ed96eebf30c7f1e865fb2e905..46a925e946fe23ac1724ac2680701bdc4d8732ad 100644 (file)
@@ -74,7 +74,9 @@ void              gtk_print_unix_dialog_set_settings         (GtkPrintUnixDialog
                                                              GtkPrintSettings   *settings);
 GtkPrintSettings *gtk_print_unix_dialog_get_settings         (GtkPrintUnixDialog *dialog);
 GtkPrinter *      gtk_print_unix_dialog_get_selected_printer (GtkPrintUnixDialog *dialog);
-
+void              gtk_print_unix_dialog_add_custom_tab       (GtkPrintUnixDialog *dialog,
+                                                             GtkWidget          *child,
+                                                             GtkWidget          *tab_label);
 
 G_END_DECLS